package com.xmg.boot.demo.bootcommon.utils.page;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.util.List;

@Data
@ToString
@AllArgsConstructor
public class PageResult<T> implements Serializable{

	// 当前页
	private long page;
	// 每页行数
	private long pageSize;
	// 总记录数
	private long total;
	// 数据列表
	private List<T> data;


	public static <T> PageResult<T> getPage(Page<T> pageLst){
		return new PageResult<>(pageLst.getCurrent(),pageLst.getSize(),pageLst.getTotal(),pageLst.getRecords());
	}


	// 通用查询 - 返回结果
	public static <T> PageResult<T> getPage(PageQuery<T> pageQuery, BaseMapper<T> mapper){
		IPage<T> pageLst = mapper.selectPage(pageQuery.getPage(), pageQuery.getQueryWrapper());
		return new PageResult<>(pageLst.getCurrent(),pageLst.getSize(),pageLst.getTotal(),pageLst.getRecords());
	}
}
